package com.mkx.behaviorals.chainofresponsibility;

/**
 * 具体处理者B (ConcreteHandlerB)
 * 责任链模式中的具体处理者之一
 * 处理特定类型的请求，如果不能处理则传递给下一个处理者
 */
public class ConcreteHandlerB extends Handler {
    
    /**
     * 处理请求的具体实现
     * 本处理者可以处理类型为"TypeB"的请求
     * @param request 请求内容
     */
    @Override
    public void handleRequest(String request) {
        if ("TypeB".equals(request)) {
            // 处理类型为"TypeB"的请求
            System.out.println("ConcreteHandlerB 处理请求: " + request);
        } else if (successor != null) {
            // 如果不是本处理者负责的请求类型，且存在下一个处理者，则传递给下一个处理者
            System.out.println("ConcreteHandlerB 不处理请求: " + request + "，传递给下一个处理者");
            successor.handleRequest(request);
        } else {
            // 如果没有下一个处理者，则说明请求无法被处理
            System.out.println("ConcreteHandlerB 是链尾，请求: " + request + " 无法被处理");
        }
    }
}